Bug 608993 - Add gtk_widget_style_attach()
authorMichael Natterer <mitch@gimp.org>
Thu, 4 Feb 2010 15:43:54 +0000 (16:43 +0100)
committerMichael Natterer <mitch@gimp.org>
Thu, 4 Feb 2010 15:43:54 +0000 (16:43 +0100)
As replacement for:
widget->style = gtk_style_attach (widget->style, widget->window);

gtk/gtk.symbols
gtk/gtkwidget.c
gtk/gtkwidget.h

index ab8de03cfeccee6ea825344914dd94946e4e187e..9fafefb71a213cc2cdf2287d3417e33b6b7e06cc 100644 (file)
@@ -5230,6 +5230,7 @@ gtk_widget_show_all
 gtk_widget_show_now
 gtk_widget_size_allocate
 gtk_widget_size_request
+gtk_widget_style_attach
 gtk_widget_style_get G_GNUC_NULL_TERMINATED
 gtk_widget_style_get_property
 gtk_widget_style_get_valist
index 3a954970f7060766dc41fa81488a1bce8d9e2544..027cfeb5a8da28df028992ed540ab73064cf1be4 100644 (file)
@@ -6293,6 +6293,32 @@ gtk_widget_get_parent (GtkWidget *widget)
  * see docs/styles.txt
  *****************************************/
 
+/**
+ * gtk_widget_style_attach:
+ * @widget: a #GtkWidget
+ *
+ * This function attaches the widget's #GtkStyle to the widget's
+ * #GdkWindow. It is a replacement for
+ *
+ * <programlisting>
+ * widget->style = gtk_style_attach (widget->style, widget->window);
+ * </programlisting>
+ *
+ * and should only ever be called in a derived widget's "realize"
+ * implementation which does not chain up to its parent class'
+ * "realize" implementation, because one of the parent classes
+ * (finally #GtkWidget) would attach the style itself.
+ *
+ * Since: 2.20
+ **/
+void
+gtk_widget_style_attach (GtkWidget *widget)
+{
+  g_return_if_fail (GTK_IS_WIDGET (widget));
+
+  widget->style = gtk_style_attach (widget->style, widget->window);
+}
+
 /**
  * gtk_widget_has_rc_style:
  * @widget: a #GtkWidget
index 02f4ceac8f77d29bf320da2e832d074c176e0fa9..f33484ba68fa3ecbec4dbb1dba929eb5362ebd3b 100644 (file)
@@ -1063,11 +1063,13 @@ gboolean     gtk_widget_hide_on_delete  (GtkWidget      *widget);
 
 /* Widget styles.
  */
-gboolean    gtk_widget_has_rc_style       (GtkWidget           *widget);
-void      gtk_widget_set_style         (GtkWidget      *widget,
-                                        GtkStyle       *style);
-void      gtk_widget_ensure_style      (GtkWidget      *widget);
-GtkStyle*  gtk_widget_get_style                (GtkWidget      *widget);
+void        gtk_widget_style_attach       (GtkWidget            *style);
+
+gboolean    gtk_widget_has_rc_style       (GtkWidget            *widget);
+void       gtk_widget_set_style          (GtkWidget            *widget,
+                                           GtkStyle             *style);
+void        gtk_widget_ensure_style       (GtkWidget            *widget);
+GtkStyle *  gtk_widget_get_style          (GtkWidget            *widget);
 
 void        gtk_widget_modify_style       (GtkWidget            *widget,
                                           GtkRcStyle           *style);